package com.aoip.telemetry.telemetry.core.analysis.decoder;

import com.aoip.telemetry.telemetry.entity.common.OriginalMessageEntity;

/**
 * @author chenbai
 * @version 1.0
 * @date 2022/3/15 9:33
 */
public interface Decoder {
    /**
     * 是否忽略此条报文，一般用在心跳报文中，true：忽略报文；false：不忽略报文
     *
     * @param originalMessage 原始报文
     * @return java.lang.Boolean
     * @author chenbai
     * @date 2022/10/13
     **/
    default Boolean ignoreMessages(String originalMessage) {
        return false;
    }

    /**
     * 原始报文帧结构解析
     *
     * @param originalMessage 原始报文
     * @return com.aoip.telemetry.telemetry.entity.common.OriginalMessageEntity
     * @author chenbai
     * @date 2022/3/16
     **/
    OriginalMessageEntity originalMsgFrame(String originalMessage);

    /**
     * 报文解析入口
     *
     * @param originalMsg 原始报文实体
     * @return com.aoip.telemetry.telemetry.entity.common.OriginalMessageEntity
     * @author chenbai
     * @date 2022/3/16
     **/
    OriginalMessageEntity entry(OriginalMessageEntity originalMsg);
}
